﻿// Decompiled with JetBrains decompiler
// Type: MCM.Abstractions.BaseSettingsProvider
// Assembly: MCMv5, Version=5.10.2.0, Culture=neutral, PublicKeyToken=null
// MVID: 7AB326B9-B2B4-41C2-9177-68E944071101
// Assembly location: D:\steam\steamapps\workshop\content\261550\2859238197\bin\Win64_Shipping_Client\MCMv5.dll

using MCM.Abstractions.Base;
using System.Collections.Generic;

#nullable enable
namespace MCM.Abstractions
{
  public abstract class BaseSettingsProvider
  {
    public static BaseSettingsProvider? Instance { get; internal set; }

    public abstract IEnumerable<SettingsDefinition> SettingsDefinitions { get; }

    public abstract BaseSettings? GetSettings(string id);

    public abstract void SaveSettings(BaseSettings settings);

    public abstract void ResetSettings(BaseSettings settings);

    public abstract void OverrideSettings(BaseSettings settings);

    public abstract IEnumerable<ISettingsPreset> GetPresets(string id);

    public abstract IEnumerable<UnavailableSetting> GetUnavailableSettings();

    public abstract IEnumerable<SettingSnapshot> SaveAvailableSnapshots();

    public abstract IEnumerable<BaseSettings> LoadAvailableSnapshots(
      IEnumerable<SettingSnapshot> snapshots);
  }
}
